優先性(Precedence)
決定運算子彼此之間被語法解析的方式,優先序較高的運算子會成為優先序較地運算子的運算元
相依性(Associativity)
相依性決定運算方向
在 MDN 參考文件中,將運算子優先性排列出來,優先性數字越大越先執行
範例:
let a = 1 * 2 + 3 * 4;
console.log(a); // 14

該範例運算子執行順序說明,
先執行優先性 14 的 * 再執行優先性 13 的 +,最後才執行優先性 3 的 =,
所以會先執行 1 * 2 和 3 * 4,之後將回傳結果相加,最後賦予到 a 變數中,
其中 * 和 + 的相依性是由左至右,而 = 的相依性是由右至左
console.log(1 < 2 < 3); // true
console.log(3 > 2 > 1); // false
該範例可能會有疑惑為何 3 > 2 > 1 會是 false,
其中 > 和 < 的相依性為由左至右
在講解前先看 1 < 2 < 3 執行順序,

該行程式碼會先執行 1 < 2 後取得結果 true,
再使用回傳結果執行 true < 3,
此時 true 會進行型別轉換成 1,
所以 true < 3 被視為 1 < 3,因此回傳 true
接著我們看 3 > 2 > 1 的執行過程

首先執行 3 > 2,回傳結果為 true,
之後執行 true > 1,此時 true 會進行型別轉換成 1,
因此視為 1 > 1,所以回傳 false